#ifndef DEMIOGRE_H
#define DEMIOGRE_H 1

#include "Race.h"

using namespace std;

/**
 * Cette classe implémente les Demi-Ogres de l'univers AD&D.
 * @author Johan "Solo" Luisier
 */
class DemiOgre : public Race
{
 private:
  static const unsigned
    nbrEnsembles, /**< Nombre d'ensemble raciaux */
    nbrCapacites, /**< Nombre max de capacités des différents ensembles raciaux */
    ppAlloues; /**< Nombre de pp alloués. */
  /**
   * Ensemble rariaux disponibles (ici un, contenant une seule compétence).
   * Contient les capacités incluses dans l'ensemble racial
   */
  static const vector< vector< unsigned > > ensembleRacial;
  /**
   * Nombre de capacités raciales et d'ensembles raciaux
   */
  static const unsigned taille;
  /**
   * Liste des capacités raciales et ensembles raciaux
   * @see CapaciteRaciale
   */
  static const vector< CapaciteRaciale > Liste;
  static const vector< EnsembleCapacitesRaciales > Ensembles;
  /**
   * Contient les prérequis raciaux;
   */
  static const vector< Prerequis > Limites;
  /**
   * Contient les ajustements raciaux pour un Demi-Ogre.
   */
  static const map< unsigned, int > AjustTraits;
 public:
  DemiOgre(const vector<unsigned>& cap);
  DemiOgre(unsigned& PP);
  DemiOgre();
  DemiOgre(Race *ptr);
  ~DemiOgre();
  //void appliquerAjustements(unsigned tab[7]);
};


#endif
